package com.example.communitysystem.mapper;


import com.example.communitysystem.dto.QuestionDTO;
import com.example.communitysystem.model.Question;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface QuestionMapper {

    //添加一个问题信息
    public Integer createQuestion(Question question);

    //分页，获取问题信息，返回分页集合
    List<Question> getQuestionList(@Param("offset") Integer offset, @Param("size") Integer size);

    //计算问题信息表的数据总量
    Integer getTotalCount();

    //通过userId获得指定用户的问题信息集合
    List<Question> getQuestionListByUserId(@Param("userId") Long userId,@Param("offset") Integer offset, @Param("size")Integer size);

    //通过userId获得指定用户问题信息的个数，即一个用户提出问题的个数
    Integer getTotalCountByUserId(@Param("userId")Long userId);

    //通过问题id获取当前用户的一个指定的问题信息
    Question getQuestionById(@Param("id") Long id);

    //通过question的tag查找相关的问题信息
    List<Question> getRelatedQuestionList(Question question);

    //更新问题信息
    Integer updateQuestion(Question question);

    //更新指定id的问题的阅读数量
    Integer updateQuestionReadCount(@Param("id") Long id,@Param("readCount") Integer readCount);

    //更新指定问题id的评论数量
    Integer updateQuestionCommentCount(@Param("id") Long id,@Param("commentCount") Integer commentCount);
}
